﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;
using PedidosPaquetesTuristicos.Soa_WebServices;

namespace PedidosPaquetesTuristicos
{
    public partial class ValidaCompra : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (Session["Cod_Usuario"] == null ||  Session["Cod_Usuario"].ToString().Equals(string.Empty))
            {
                lblBienvenido.Text = "Para continuar con su compara debe iniciar sesiòn.";
                lblBienvenido.ForeColor = System.Drawing.Color.Red;
                BtnComprar.Enabled = false;
            }
            else
            {
                lblBienvenido.Text = "Bienvenido Sr.(ta): " + Session["Usuario"].ToString();
                lblBienvenido.ForeColor = System.Drawing.Color.Blue;
                BtnComprar.Enabled = true;
            }
            Session["Comprar"] = true;
            Session["Codigo"] = Request.QueryString["Codigo"].ToString();
            string Codigo = Request.QueryString["Codigo"].ToString();

            Soa_WebServices.WebServiceRegistraCliente Selecciona = new WebServiceRegistraCliente();
            DataSet Respuesta = Selecciona.SeleccionarPaqueteId(Convert.ToInt32(Codigo));
            LblFecInicio.Text = Respuesta.Tables[0].Rows[0]["Fecha Inicio"].ToString();
            LblFecFin.Text = Respuesta.Tables[0].Rows[0]["Fecha Fin"].ToString();
            LblHotel.Text = Respuesta.Tables[0].Rows[0]["Hotel"].ToString();
            LblEmpresa.Text = Respuesta.Tables[0].Rows[0]["Empresa"].ToString();
            LblTipVuelo.Text = Respuesta.Tables[0].Rows[0]["Tipo Vuelo"].ToString();
            LblTipHab.Text = Respuesta.Tables[0].Rows[0]["Tipo Habtación"].ToString();
            LblCantHab.Text = Respuesta.Tables[0].Rows[0]["N° Habitaciones"].ToString();
            LblUbica.Text = Respuesta.Tables[0].Rows[0]["Ubicación"].ToString();
            LblPrecio.Text = Respuesta.Tables[0].Rows[0]["Precio"].ToString();

            Random r = new Random();
            int aleat1 = r.Next();

            if (Session["Cod_Usuario"] == null || Session["Cod_Usuario"].ToString().Equals(string.Empty))
            {
                LblGeneraCodigo.Text = Codigo + aleat1.ToString();
                Session["LblGeneraCodigo.Text"] = LblGeneraCodigo.Text;
            }
            else
            {
                LblGeneraCodigo.Text = Session["LblGeneraCodigo.Text"].ToString();
            }

        }

        protected void txtNumtarjeta_TextChanged(object sender, EventArgs e)
        {
            if (txtNumtarjeta.Text.Length == 16)
            {
                imgResultado.ImageUrl = "~/Imgs/ok.jpg";
                btnPagar.Enabled = true;
            }
            else
            {
                imgResultado.ImageUrl = "~/Imgs/Mal.jpg";
                btnPagar.Enabled = false;
            }
            imgResultado.Visible = true;
            ModalPopupExtender1.Show();
        }

        protected void btnPagar_Click(object sender, EventArgs e)
        {
            //Generamos un nùmero de transacciòn para la operación bancaria
            Random r = new Random();
            int aleat1 = r.Next();

            String codigoTransaccion = Request.QueryString["Codigo"].ToString() + aleat1.ToString();

            //Realizamos el Pago al Banco
            RESTPagoBanco.RestServiceImpl restpagoBanco = new RESTPagoBanco.RestServiceImpl();
            String transaccionbanco = restpagoBanco.ValidarTarjetaCredito(txtNumtarjeta.Text);

            if (transaccionbanco.Equals(string.Empty))
            {
                lblResultado.Text = "Banco no pudo confirmar la transacciòn.. Tarjeta no válida";
                imgResultado.ImageUrl = "~/Imgs/Mal.jpg";
                lblResultado.Visible = true;
                btnPagar.Visible = false;
            }
            else
            {
                Soa_WebServices.WebServiceRegistraCliente Pagar = new WebServiceRegistraCliente();
                string resultado = Pagar.RegistraPago(Int32.Parse(Session["Cod_Usuario"].ToString()), txtNumtarjeta.Text, LblGeneraCodigo.Text, Decimal.Parse(LblPrecio.Text), codigoTransaccion);
                if (resultado.Equals("1"))
                {
                    lblResultado.Text = "Operacion Realizada Exitosamente. Nª de Operaciòn: " + codigoTransaccion;
                    btnPagar.Enabled = false;
                    BtnComprar.Enabled = false;
                }
                else
                {
                    lblResultado.Text = "No se pudo completar la operaciòn";
                    imgResultado.ImageUrl = "~/Imgs/Mal.jpg";
                    lblResultado.Visible = true;
                    btnPagar.Enabled = false;
                }
            }
            ModalPopupExtender1.Show();
        }

        protected void btnSalir_Click(object sender, EventArgs e)
        {
            Response.Redirect("~/Default.aspx");
        }
    }
}
